package com.wn.service.db

import android.os.Parcelable
import androidx.room.Entity
import androidx.room.PrimaryKey
import kotlinx.parcelize.Parcelize

/**
 * @Author: wn
 * @Date: 2023/2/21 17:17
 * @Description: User entity 的定义
 * @ColumnInfo(name = "first_name") 列的名称  不写默认变量名为列名
 * @SerializedName("is_bind_phone") 属性重命名，可以将json中的属性名转为我们自己自定义的属性名
 * @Embedded 嵌入一个 entity  是一个 完整的 entity 表宿主 会 将 内嵌表的所有 字段添加到自身中 除了 主键
 * father1 father2 father3 (不添加 son 主键) son2 son3
 */

// navigation关联布局的传递参数Arguments类型有限制，如果不变成@Parcelize可序列化的数据类型就传不了
@Entity(tableName = "user_info_table")
@Parcelize
data class UserInfo(
  @PrimaryKey
  val uid: Int,
  val id: String,// 1398264887083274241
  var account: String, // a123456
  val avatar: String, // http://yjy-xiaotuxian-dev.oss-cn-beijing.aliyuncs.com/picture/2021-04-06/db628d42-88a7-46e7-abb8-659448c33081.png
  val birthday: String?, // null
  val cityCode: String?, // null
  val gender: String?, // null
  val mobile: String, // 18832329863
  val nickname: String?, // null
  val profession: String?, // null
  val provinceCode: String?, // null
  val token: String, // eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ7XCJpZFwiOlwiMTM5ODI2NDg4NzA4MzI3NDI0MVwiLFwidXNlcm5hbWVcIjpcImExMjM0NTZcIn0iLCJpYXQiOjE2ODI0NzU1NjcsImV4cCI6MTY4MjczNDc2N30.yHJi_c7CJeuNut9omsc_GnJTLUzQCaM2iBLr6zoUnmE
) : Parcelable
/*
data class UserInfo(
  @PrimaryKey
  val id: Int, // 主键
  @SerializedName("is_bind_phone")
  val isBindPhone: Boolean?,
  val token: String?,
  @Embedded
  val user: User
)

@Entity(tableName = "user_table")
data class User(
  @ColumnInfo(name = "cniao_user_id")
  val uid: Int, // 用户 id
  val logo_url: String?, // 用户头像
  val username: String?, // 用户名
  val reg_time: String?, //用户注册时间
)*/
